1173D - Nauuo and Circle - CodeForces Solution


combinatorics dfs and similar dp geometry trees *1900

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

// debug macros
#ifndef ONLINE_JUDGE
    #define printv(v) cerr << #v << ": ";for(auto x : v) cerr << x << ' '; cerr << '\n';
    #define deb(...) logger(#__VA_ARGS__, __VA_ARGS__)
    template<typename ...Args>
    void logger(string vars, Args&&... values) {
        cerr << vars << " = ";
        string delim = "";
        (..., (cerr << delim << values, delim = ", "));
        cerr << '\n';
    }
#else
    #define printv(v) 0
    #define deb(...) 0
#endif

// shortcuts
#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
#define endl '\n'
#define pb push_back
#define fr first
#define sc second
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define sz(v) (int)(v).size()
#define TEST int t;cin>>t;while(t--)

typedef long long ll;
typedef string str;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<char> vc;
typedef vector<pii> vii;
typedef vector<vi> vvi;
typedef map<int,int> mii;
typedef set<int> si;
typedef set<char> sc;

void setPrec() { cout << fixed << setprecision(16); }
void setIO(string NAME = "") {
    cin.tie(0)->sync_with_stdio(0);
    setPrec();
    if(sz(NAME)) {
        freopen((NAME + ".inp").c_str(),"r",stdin);
        freopen((NAME + ".out").c_str(),"w",stdout);
    }
}

const int MOD = 998244353;
ll fact[200001];

void initfact(ll n){
    fact[0] = 1;
    for(ll i = 1 ; i <= n ; i++)
        fact[i] = (fact[i-1]*i)%MOD;
}

int main() {
    setIO();
    ll n; cin >> n;
    initfact(n);
    vvi edges(n+1);
    rep(i,0,n-1){
        int a,b; cin >> a >> b;
        edges[a].pb(b);
        edges[b].pb(a);
    }

    ll ans = n;
    rep(i,1,n+1)
        ans=(ans*fact[edges[i].size()])%MOD;

    cout << ans << endl;
  return 0;
}


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST